describe('distance grid', function () {
    it('addObject', function () {
        var grid = new L.DistanceGrid(100),
            obj = {};

        expect(grid.addObject(obj, {x: 0, y: 0})).to.eql(undefined);
        expect(grid.removeObject(obj, {x: 0, y: 0})).to.eql(true);
    });

    it('eachObject', function (done) {
        var grid = new L.DistanceGrid(100),
            obj = {};

        expect(grid.addObject(obj, {x: 0, y: 0})).to.eql(undefined);

        grid.eachObject(function (o) {
            expect(o).to.eql(obj);
            done();
        });
    });

    it('getNearObject', function () {
        var grid = new L.DistanceGrid(100),
            obj = {};

        grid.addObject(obj, {x: 0, y: 0});

        expect(grid.getNearObject({x: 50, y: 50})).to.equal(obj);
        expect(grid.getNearObject({x: 100, y: 0})).to.equal(obj);
    });

    it('getNearObject with cellSize 0', function () {
        var grid = new L.DistanceGrid(0),
            obj = {};

        grid.addObject(obj, {x: 0, y: 0});

        expect(grid.getNearObject({x: 50, y: 50})).to.equal(null);
        expect(grid.getNearObject({x: 0, y: 0})).to.equal(obj);
    });
});
